package LuoGu;

import java.sql.SQLOutput;
import java.util.Scanner;

public class LuoGu2404 {


    public static void main(String[] args) {
        int a[]=new int[80];
        a[0]=1;
        int n=0;
        main(n,a);
    }
    static int main(int n,int[] a)
    {

        Scanner sca=new Scanner(System.in);
        n=sca.nextInt();
        search(n,1,a,n);//将要拆分的数n传递给s
        return 0;
    }
 static void search(int s,int t,int[] a,int n)
    {

        int i;
        for(i=a[t-1];i<=s;i++)
            if(i<n)//当前数i要大于等于前一位数，且不超过n
            {
                a[t]=i;//保存当前拆分的数i
                s-=i;//s减去数i，s的值将继续拆分
                if(s==0)print(t,a);//当s=0时，拆分结束输出结果
                else search(s,t+1,a,n);//当s>0时，继续递归
                s+=i;//回溯：加上拆分的数，以便产生所有可能的拆分
            }
    }
    static void print(int t,int[] a) {
        for (int i = 1; i <= t-1; i++)//输出一种拆分方案
            System.out.print(a[i] + "+");
        System.out.println(a[t]);
    }
}
